package com.ValueObjects;

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.util.Hashtable;
import java.util.Vector;

public class Filme extends JMESerializable{
    
    private int id_filme;
    
    private int rankPosition;
    
    private String nome;
        
    private String faixa_etaria;
    
    private String sinopse;
    
    private Hashtable salas;
    
    private int notaCritica;
    
    public Hashtable getSalas() {
        return salas;
    }
    
    public Filme(){
        
    }
    
    public Filme(byte[] data) throws IOException, InterruptedException {
        unserialize(data);
    }
    
    public void setSalas(Hashtable salas) {
        this.salas = salas;
    }
    
    public int getId_filme() {
        return id_filme;
    }
    
    public void setId_filme(int id_filme) {
        this.id_filme = id_filme;
    }
    
    public String getFaixa_etaria() {
        return faixa_etaria;
    }
    
    public void setFaixa_etaria(String faixa_etaria) {
        this.faixa_etaria = faixa_etaria;
    }
    
    public String getNome() {
        return nome;
    }
    
    public void setNome(String nome) {
        this.nome = nome;
    }
    
    public String getSinopse() {
        return sinopse;
    }
    
    public void setSinopse(String sinopse) {
        this.sinopse = sinopse;
    }
    
    public int getRankPosition() {
        return rankPosition;
    }
    
    public void setRankPosition(int rankPosition) {
        this.rankPosition = rankPosition;
    }
    
    public void setNota(int nota){
        this.notaCritica = nota;
    }

    public int getNota(){
        return notaCritica;
    }
    
    public byte[] serialize() throws IOException, InterruptedException {
        return null;
    }
    
    public byte[] unserialize(byte[] data) throws IOException, InterruptedException {
        initUnSerialize(data);
        
        id_filme = dataIn.readInt();
        rankPosition = dataIn.readInt();
        notaCritica = dataIn.readInt();
        nome = dataIn.readUTF();
        faixa_etaria = dataIn.readUTF();
        sinopse = dataIn.readUTF();
        
        int size = dataIn.available();
        byte[] temp = new byte[size];
        
        dataIn.read(temp);
        
        return temp;
    }
    
    public static Vector getVectorOfFilmes(DataInputStream dataIn, int itNum) {
        Vector v = new Vector();
        
        try {
            for(int i = 0; i < itNum; i++) {
                Filme f = new Filme();
                
                f.id_filme = dataIn.readInt();
                f.rankPosition = dataIn.readInt();
                f.notaCritica = dataIn.readInt();
                f.nome = dataIn.readUTF();
                f.faixa_etaria = dataIn.readUTF();
                f.sinopse = dataIn.readUTF();
                v.addElement(f);
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return v;
    }
}